package com.hxkj.service.article;

import com.alibaba.fastjson.JSONObject;
import com.hxkj.domain.po.Article;
import com.platform.common.domain.result.ResultPageStruct;
import com.platform.common.domain.to.PageTo;

/**
 * 文章Service
 * <p>
 * Created by zzx on 2018/6/5.
 */
public interface ArticleService {

    /**
     * 获取文章列表
     *
     * @param
     * @return
     * @throws Exception
     */
    ResultPageStruct<Article> getArticleList(Article article, PageTo pageParam) throws Exception;


    /**
     * 查询一条文章信息
     *
     * @param article
     * @return
     * @throws Exception
     */
    Article getArticle(Article article) throws Exception;


    /**
     * 修改一条文章信息
     *
     * @param jsonObject
     */
    void modifyArticle(JSONObject jsonObject) throws Exception;

    /**
     * 文章恢复
     *
     * @param article
     */
    void articleRecover(Article article) throws Exception;

    /**
     * 文章审核/设置文章推荐级别
     *
     * @param article
     */
    void updateArticle(Article article) throws Exception;

    /**
     * 文章置顶
     *
     * @param article
     */
    void articleStick(Article article) throws Exception;

    /**
     * 批量软删除文章  至回收站
     *
     * @param article
     */
    void removerArticle(Article article) throws Exception;

    /**
     * 发布一条文章信息
     *
     * @param jsonObject
     */
    void saveArticle(JSONObject jsonObject) throws Exception;

    /**
     * 从回收站中彻底删除文章
     *
     * @param article
     */
    void deleteArticle(Article article) throws Exception;

    /**
     * 保存咨询和曝光
     * @param article
     */
    void saveRight(Article article,String msg) throws Exception;

    /**
     * 获取曝光或咨询的总条数
     * @param article
     */
    Integer getRightsCount(Article article) throws Exception;

    /**
     * 所有文章详细重新生成静态
     */
    void reloadArticle(Article article) throws Exception;

    /**
    * @author Mr.zheng
    * @Description modifyHeat 根据站点ID和文章ID修改文章热度值
    * @Date 13:54 2018/8/9
    * @Param [article]
    * @return com.hxkj.domain.po.Article
    **/
    Article modifyHeat(Article article) throws Exception;
}
